package com.sfx.admin.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.sfx.admin.dao.entity.GroupDO;
import com.sfx.admin.dto.req.GroupSortReqDTO;
import com.sfx.admin.dto.req.GroupUpdateReqDTO;
import com.sfx.admin.dto.req.ShortLinkCreateGroupReqDTO;
import com.sfx.admin.dto.resp.GroupRespDTO;

import java.util.List;

public interface IGroupService extends IService<GroupDO> {


    /**
     * 根据短链接分组名称保存 新增短链接分组
     *
     * @param requestParam 短链接分组名称
     */
    void saveGroup(ShortLinkCreateGroupReqDTO requestParam);


    /**
     * 根据短链接分组名称 + 用户名称 保存 新增短链接分组
     *
     * @param groupName 短链接分组名称
     * @param username  用户名
     */
    void saveGroup(String username, String groupName);


    /**
     * 修改短链接分组（只能修改名称）
     *
     * @param requestParam 短链接更新对象
     */
    void updateGroup(GroupUpdateReqDTO requestParam);


    /**
     * 查询短链接分组集合（短链接分组最多10个）
     * 先按照排序字段进行排序(sortOrder), 在按照更新时间进行排序
     *
     * @return 返回所有短链接分组信息(集合)
     */
    List<GroupRespDTO> listGroup();


    /**
     * 删除短链接分组
     */
    void deleteGroup(String gid);


    /**
     * 短链接分组排序
     */
    void groupSort(List<GroupSortReqDTO> requestParam);
}